package com.kun.controller.admin;

import com.kun.entity.WangEditorVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

/**
 * @descriptions:
 * @author: SunKun
 * @date: 2021/7/10 0010 16:35
 * @version: 1.0
 */
@RestController
@CrossOrigin  //允许跨域
@ResponseBody
@Slf4j
@RequestMapping("/kun/admin/editor")
public class FileUploadController {

    private static final String PRODUCT_FILE_PREFIX = "E:/Project/blog-2.0/blog-web/blog-image/";
    private static final String SERVER_PREFIX = "http://localhost:8006/";

    @PostMapping("/wangUpload")
    public WangEditorVO wangUpload(MultipartFile[] file) throws IOException {
        //当file为空时
        if (file == null || file.length == 0) {
            return WangEditorVO.error(1, "无图片信息");
        }

        //存入数据库的文件地址集合
        List<String> pathList = new ArrayList<>();
        for (MultipartFile multipartFile : file) {
            //获取文件名
            String name = UUID.randomUUID().toString();
            //拼接完整的 存放图片地址，即：D:\\IO\\shop\\shopImage\\文件名.后缀名
            File path = new File(PRODUCT_FILE_PREFIX + name + getSuffix(multipartFile));
            System.out.println(path);
            //将图片存放到path路径下
            multipartFile.transferTo(path);
            //拼接完整的 访问图片地址，即：http://localhost:8888/文件名.后缀名
            pathList.add(SERVER_PREFIX + "blog-image/" + name + getSuffix(multipartFile));
        }

        return WangEditorVO.success(pathList);
    }

    /**
     * 获取文件的后缀名
     *
     * @param multipartFile 上传的文件
     * @return 文件的后缀名
     */
    private String getSuffix(MultipartFile multipartFile) {
        //获取完整的文件名
        String fileName = multipartFile.getOriginalFilename();
        //截取后缀
        String fileSuffix = fileName.substring(fileName.lastIndexOf("."));
        return fileSuffix;
    }
}
